package Terminal.View.Fattura;

import java.awt.Color;
import java.awt.Font;
import java.text.Format;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.swing.JLabel;
import javax.swing.JPanel;

import Terminal.Entity.Dominio.EFattura;

public class JDescrizioneFattura extends JPanel {

	private static final long serialVersionUID = 1L;

    final private Font etichettaFont = new Font(this.getFont().getName(), Font.BOLD , 16);
    final private Font valoreFont = new Font(this.getFont().getName(), Font.ITALIC , 14);
    
    private JLabel fatturanumerolabel;
    private JLabel fatturanumerotextlabel;
    
    private JLabel fatturadatalabel;
    private JLabel fatturadatatextlabel;
    
    private JLabel fatturaprogettolabel;
    private JLabel fatturaprogettotextlabel;
    
    private JLabel fatturaclientelabel;
    private JLabel fatturaclientetextlabel; 
    
    private JLabel fatturatotalelabel;
    private JLabel fatturatotaletextlabel;
	
	public JDescrizioneFattura()
	{
		super();
		this.createComponents();
	}

	private void createComponents() 
	{
		this.setLayout(null);
		this.setBackground(Color.white);
		this.setBounds(1,181,828,170);
		
		this.setNumeroFattura();
		this.setData();
		this.setProgetto();
		this.setCliente();
		this.setTotale();
		
		this.add(fatturanumerolabel);
		this.add(fatturanumerotextlabel);
		
		this.add(fatturadatalabel);
		this.add(fatturadatatextlabel);
		
		this.add(fatturaprogettolabel);
		this.add(fatturaprogettotextlabel);
		
//		this.add(fatturaclientelabel);
//		this.add(fatturaclientetextlabel);
		
		this.add(fatturatotalelabel);
		this.add(fatturatotaletextlabel);				
	}

	private void setNumeroFattura() {

		fatturanumerolabel = new JLabel("Fattura No: ");
		fatturanumerolabel.setBounds(100,20,150,50);
		fatturanumerolabel.setFont(etichettaFont);
		
		fatturanumerotextlabel = new JLabel("numero");
		fatturanumerotextlabel.setBounds(250,20,150,50);
		fatturanumerotextlabel.setFont(valoreFont);
	}

	private void setData() {
		fatturadatalabel = new JLabel("<html>Data di <br>emissione: </html>");
		fatturadatalabel.setBounds(500,20,150,50);
		fatturadatalabel.setFont(etichettaFont);	
		
		fatturadatatextlabel = new JLabel("data");
		fatturadatatextlabel.setBounds(650,20,150,50);
		fatturadatatextlabel.setFont(valoreFont);
	}

	private void setProgetto() {

		fatturaprogettolabel = new JLabel("Progetto: ");
		fatturaprogettolabel.setBounds(100,70,150,50);
		fatturaprogettolabel.setFont(etichettaFont);
		
		fatturaprogettotextlabel = new JLabel("progetto");
		fatturaprogettotextlabel.setBounds(250,70,150,50);
		fatturaprogettotextlabel.setFont(valoreFont);		
		
	}

	private void setCliente() {
		
		fatturaclientelabel = new JLabel("Cliente: ");
		fatturaclientelabel.setBounds(500,70,150,50);
		fatturaclientelabel.setFont(etichettaFont);
		
		fatturaclientetextlabel = new JLabel("cliente");
		fatturaclientetextlabel.setBounds(650,70,150,50);
		fatturaclientetextlabel.setFont(valoreFont);		
		
	}

	private void setTotale() {

		fatturatotalelabel = new JLabel("_Totale: ");
		fatturatotalelabel.setBounds(500,120,150,50);
		fatturatotalelabel.setFont(etichettaFont);	
		
		fatturatotaletextlabel = new JLabel("tot");
		fatturatotaletextlabel.setBounds(650,120,150,50);
		fatturatotaletextlabel.setFont(valoreFont);
		fatturatotaletextlabel.setForeground(Color.RED);
		
	}
	
	/**
	 * permette visualizzare un instanza di EFsttura utilizzando le JLabel instaziate prima; 
	 * @param obj
	 * @override
	 */
	public void visualizzaElemento(EFattura fattura) {
		
		if(fattura != null)
		{		
			Format dataformat= new SimpleDateFormat("dd/MM/yyyy kk:mm:ss");
			fatturanumerotextlabel.setText( Integer.toString( fattura.getId()) );
			fatturadatatextlabel.setText(dataformat.format( new Date()) );
			fatturaprogettotextlabel.setText( fattura.getProgetto().getNome() );
//			fatturaclientetextlabel.setText( fattura.getCliente().getNome() );
			fatturaclientetextlabel.setText( " " );
			fatturatotaletextlabel.setText( Integer.toString(fattura.getTotale().getPrezzo()) );
		}
		else
		{
			fatturanumerotextlabel.setText("");
			fatturadatatextlabel.setText("");
			fatturaprogettotextlabel.setText("");
			fatturaclientetextlabel.setText("");
			fatturatotaletextlabel.setText("");
		}			
	}
	
}
